﻿
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>全程MVP打造带服务端的IM即时通讯Android APP-课程章节</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
    <meta name="renderer" content="webkit">
    <meta property="qc:admins" content="77103107776157736375" />
    <meta property="wb:webmaster" content="c4f857219bfae3cb" />
    <meta http-equiv="Access-Control-Allow-Origin" content="*" />
    <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval' *.imooc.com *.mukewang.com *.baidu.com *.sina.com.cn *.bootcss.com">
    <meta name="keywords" content="IM聊天Android APP" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="简单介绍课程适应人群以及主要的实现方案和课程的分节说明；除此之外展示APP使用效果同时了解IM相关协议并对比现有的IM实现方案" />
    
    <link rel="stylesheet" href="css/moco.min.css" type="text/css" />
    
    <style type="text/css">
    .moco-modal-info {
        font-size: 14px;
        line-height: 20px;
    }
    </style>
    




    <script type="text/javascript">
        var OP_CONFIG={"module":"class","page":"chapter","userout":0};
        OP_CONFIG.isLogin = 0;
        var isLogin = 0;
        var _msg_unread = 0; 
        var _not_unread = 0; 
        var _cartFlag = 0;
        var seajsTimestamp="v=201705090953";
            </script>
    
    
    
<link rel="stylesheet" href="css/ab0ae1a7f11c47f9a39fcb5c94efea55.css" type="text/css" />
</head>
<body >

<div id="header">
    <div class="page-container" id="nav">
        <div id="logo" class="logo"><a href="http://www.imooc.com/" target="_self" class="hide-text" title="首页">慕课网</a></div>
        
        <button type="button" class="navbar-toggle visible-xs-block js-show-menu" >
            <i class="sz-list"></i>
        </button>
        
        <div class="g-menu-mini l">
            <a href="javascript:;" class="menu-ctrl">
                <i class="sz-list"></i>
            </a>
            <ul class="nav-item l">
                        <li class="set-btn visible-xs-block"><a href="http://www.imooc.com/user/newlogin" target="_self">登录</a> / <a href="http://www.imooc.com/user/newsignup" target="_self">注册</a></li>
                        
            <li><a href="http://www.imooc.com/course/list" target="_self">课程</a></li>
            <li><a href="http://class.imooc.com" target="_self" class="program-nav">职业路径<i class="icn-new"></i></a></li>
            <li><a href="/" class="active" target="_self">实战</a></li>
            <!--<li><a href="http://www.imooc.com/corp/index"   target="_self">分享</a></li>-->
                        <li><a href="http://www.imooc.com/wenda" target="_self">猿问</a></li>
            <li><a href="http://www.imooc.com/article" target="_self">手记</a></li>
            <!--<li><a href="http://www.imooc.com/wiki" target="_self">WIKI</a></li>-->
            
                    </ul>
        </div>
                    <div id="login-area">
                <ul class="header-unlogin clearfix">
                    <li class="shop-cart" id="shop-cart">
                        <a href="http://order.imooc.com/pay/cart" class="shop-cart-icon" target="_blank">
                            <span class="sz-shopping-cart js-endcart"></span>
                            <span class="shopping_icon js-cart-num"  data-ordernum="0" data-cartnum="0" style='display: none'>0</span>
                            <span>购物车</span>
                        </a>
                        <div class="my-cart" id="js-my-cart"></div>
                    </li>
                    <li class="header-signin">
                        <a href="#" id="js-signin-btn">登录</a>
                    </li>
                    <li class="header-signup">
                        <a href="#" id="js-signup-btn">注册</a>
                    </li>
                </ul>
            </div>
                    <div class='search-warp clearfix' style='min-width: 32px; height: 60px;'>

                <div class="pa searchTags js-searchtags" ></div>

                <div class="search-area" data-search="top-banner">
                    <input class="search-input" data-suggest-trigger="suggest-trigger" placeholder="请输入想搜索的内容..." type="text" autocomplete="off">
                    <input type='hidden' class='btn_search' data-search-btn="search-btn" />
                    <ul class="search-area-result" data-suggest-result="suggest-result">
                    </ul>
                </div>
                <div class='showhide-search' data-show='no'><i class='sz-search'></i></div>
            </div>
        </div>
        </div>
        

        
<div class="course-class-infos ">
    <div class="w pr">
		<div class="path">
			<a href="/">实战</a>
			<i class="path-split">\</i><span>带后台的IM即时通讯App 全程MVP手把手打造</span>
		</div>
		
		<div class="extra">
			<div class="share-action l bdsharebuttonbox bdshare-button-style0-16" data-bd-bind="1439263858135">
				<a href="javascript:;" class="share wx js-share sz-weixin" data-cmd="weixin" title="分享到微信">
				</a>
				<a href="javascript:;" class="share qq js-share sz-qq" data-cmd="qzone" title="分享到QQ空间">
				</a>
				
				<a href="javascript:;" class="share sina js-share sz-weibo" data-cmd="tsina" title="分享到新浪微博">
				</a>
			</div>
		</div>
		
		<div class='info-warp tc'>
			
			
			
			<div class='hide'>
				<h1 class="l">带后台的IM即时通讯App 全程MVP手把手打造</h1>
			</div>
			
			
			<div class='info-bar tc'>
				<div class="statics clearfix">
					<div class="static-item first">
						<span class="meta">难度</span>
						<span class="meta-value"><strong>中级</strong></span>
					</div>
					<div class="static-item static-time">
						<span class="meta">时长</span>
						<span class="meta-value"><strong>35小时</strong></span>
						<em></em>
					</div>
					<div class="static-item">
						<span class="meta">学习人数</span>
						<span class="meta-value"><strong>24</strong></span>
						<em></em>
					</div>
					<div class="static-item">
						<span class="meta-value"><strong>10.0分</strong></span>
						<span class="meta meta-stars">
							<i class="sz-star on"></i><i class="sz-star on"></i><i class="sz-star on"></i><i class="sz-star on"></i><i class="sz-star on"></i>
						</span>
						<em></em>
					</div>
				</div>
			</div>
			
			<div class="price-box">
				<span class="num clearfix">
										
										
					<span class="discount-price">
						<span class="baseline baseliner0">
						<span class="new-y">&yen;</span>
						<span class="cur-price"><b>466</b><b class="sub">.00</b></span>
						</span>
					</span>
					
					
									</span>
			</div>

			
			<div class="clearfix btnwarp">
														<a href="javascript:;" class="js-buy-trigger buy-class-btn class-btn1" data-cid="100" data-pay="0" id="buy-trigger">
						<span>立即购买</span>
					</a>
					
					<a href='javascript:;' class='js-addcart addcart' data-cid='100' data-type='1'>
						<span class='line'></span>
						<i class='sz-add-shopping-cart'></i>
					</a>
					
													<div class="preview-tip"> 			
								</div>
			</div>
		</div>
	</div>
			
    <div class="info-bg" id="js-info-bg">
        <div class="cover-img-wrap" style="background-image:url(images/59118b940001611b20000520.jpg)"></div>     
    </div>
</div>

<div class='course-infos-t'>
<div id='Anchor'></div>
<div class="comp-tab-t js-comp-tab">
	<ul class='clearfix'>
		<li class="comp-tab-item-first comp-tab-item ">
			<a href="/class/100.html#Anchor">课程介绍</a>
		</li>
		<li class="comp-tab-item active">
			<a href="/class/chapter/100.html#Anchor">课程章节</a>
		</li>
		<li class="comp-tab-item">
			<a href="/class/100.html#Prchor">课程咨询</a>
			<span>13</span>
		</li>
		<li class="comp-tab-item ">
			<a href="/class/evaluation/100.html#Anchor">用户评价</a>
			<span>4</span>
		</li>
				<li class="comp-tab-item ">
			<a href="/class/100.html#Envir">环境参数</a>
		</li>
				
	</ul>
</div>

<div class='js-fixed course-fixed-nav hide'>
	<h3 class='fixed-course-name' title='带后台的IM即时通讯App 全程MVP手把手打造'>带后台的IM即时通讯App 全程MVP手把手打造</h3>
	
	<ul class='fixed-nav clearfix'>
		<li class="fixed-nav-item-first fixed-nav-item ml0 ">
			<a href="/class/100.html#Anchor">课程介绍</a>
		</li>
		<li class="fixed-nav-item active">
			<a href="/class/chapter/100.html#Anchor">课程章节</a>
		</li>
		<li class="fixed-nav-item">
			<a href="/class/100.html#Prchor">课程咨询</a>
			<span>13</span>
		</li>
		<li class="fixed-nav-item ">
			<a href="/class/evaluation/100.html#Anchor">用户评价</a>
			<span>4</span>
		</li>
				<li class="fixed-nav-item ">
			<a href="/class/100.html#Envir">环境参数</a>
		</li>
				
	</ul>
		
	<div class="goumai">
								<div class="buy-wrap r">
				<a href="javascript:;" class="js-buy-trigger fixed-nav-btn fixed-btn1" data-cid="100" data-pay="0" id="buy-trigger">
					<span>立即购买</span>
				</a>
				<a href='javascript:;' class='js-addcart addcart' data-cid='100' data-type='1'>
					<span class='line'></span>
					<i class='sz-add-shopping-cart'></i>
				</a>
			</div>
			<span class="r fixed-nav-prices">￥466.00</span>
			
						</div>
</div>

			
<div class="infolayout clearfix">
	
<div class="w clearfix">
    	
	<div class="comp-tabs-pannel class-tab-pannel course-cmt">
		<div class="chapter-box">
			<div class="comp-tabs-pannel  outline-list">
			  				<ul class='chapter-ul'>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第1章 课程项目整体概述</h5>
						  <p class="desc">简单介绍课程适应人群以及主要的实现方案和课程的分节说明；除此之外展示APP使用效果同时了解IM相关协议并对比现有的IM实现方案。当然现如今IM已经不是一个APP而是一个SDK，趋近于嵌入到任何APP中使用；这也是IM推送聊天技术的主要使用场景。...</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第2章 推送和存储平台准备</h5>
						  <p class="desc">这一章是推送方案的基础，在本章中选取了第三方平台以及文件存储平台。推送平台负责消息的送达，而OSS存储服务负责资源文件的存储与访问工作。</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第3章 项目前后端项目搭建与准备</h5>
						  <p class="desc">这是项目的基础章节；在本章中讲解了项目的导入注意事项，让同学们无忧导入到开发中。同时就使用到的必须控件和类进行抽取和封装；当然在项目开始之初将带领代价尝试使用MVP开发的流程。</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第4章 客户端基础模块准备</h5>
						  <p class="desc">在本章节中讲解了主界面的搭建以及图片选择预览功能的实现；当然图片的应用需要网络支持，所以在最后实现了图片上传到OSS的相关实现。</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第5章 项目数据库模型设计</h5>
						  <p class="desc">一切的业务操作最终都将反映到数据模型的关系上；本章是重点也是一个难点！在本章中我们能学到数据库模型的所有设计与关系；知晓用户、群组、消息之间的相互关系；并且领略Code先行的乐趣。</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第6章 用户注册登录与信息完善</h5>
						  <p class="desc">APP的入口就是登录与注册，在本章节中完善了登录与注册模块，同时完成了用户登录注册后完善个人信息的功能；其中首次体验了服务器端数据库Model的使用，这是一个好的开端。</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第7章 好友新增与管理功能实现</h5>
						  <p class="desc">在本章节中我们通过搜索界面入口实现了搜索人功能，同时基于之上实现了关注以及好友列表的功能；与此同时我们实现了对用户信息的查看，方便好友添加等功能之间的衔接。</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第8章 客户端数据操作难点与解决方案</h5>
						  <p class="desc">本章既是重点也是难点；一个好的APP有一整套完整的消息流程；而我们的所有操作都是基于数据库的操作，所以有必要对数据库进行消息封装，避免多余的查询消耗，优化体验。</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第9章 聊天之单聊功能开发</h5>
						  <p class="desc">聊天的本质是数据的传输。在本章中我们讲解服务器所需的接口实现以及客户端中消息发送队列的封装；当然在本章中还将系统性的学习消息分发流程，以及线程调度与协作的相关知识点。是非常值得认真学习与思考的章节。</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第10章 群组聊天之准备事项</h5>
						  <p class="desc">好友能聊天了，那么群组该如何实现呢？本章是群组聊天的基础，有了群组信息与与群组管理等功能才能有群组聊天。在本章中着重讲解了群组功能与个人之间的关系以及客户端与服务器的实现；包括：新增群，添加群，更改群信息等功能的实现。...</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第11章 群组聊天之发送消息</h5>
						  <p class="desc">群消息发送得益于服务器的消息分发功能；在本章中我们基于聊天的基础实现完善了群聊天界面，并且实现了群消息发送与接收并消费的整个流程。同时在本章节中我们完成了对群成员的管理界面实现。</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第12章 聊天扩展之发送表情</h5>
						  <p class="desc">表情是聊天的一个要素，也是聊天的一个重要组成部分。纯文字上有着表情的支持将更加丰富多彩。在本章中可以学习到：1.表情基本协议定制；2.表情的基础分发；3.表情的动态解析。</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第13章 聊天扩展之发送图片</h5>
						  <p class="desc">在本章中讲解了图片在聊天中的运用；最主要的是其中的图片压缩方案；服务器资源有限，只能通过优秀的压缩方案来缓解服务器压力与流量压力。</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第14章 聊天扩展之语音聊天</h5>
						  <p class="desc">语音是一个点缀。但聊天有了语音后将与众不同，方便的信息交流方式才是重点。在本章中将重点讲解语音的录制-压缩与转码-写入文件-上传服务器-解析播放的相关知识点。</p>
			
					  </div>
					</li>
				  					<li class="chapter clearfix">
					  <i class="chapter-icon sz-chapter"></i>
					  <div class="chapter-bd l">
						  <h5 class="name">第15章 慕聊IM项目总结</h5>
						  <p class="desc">总结整个IM应用使用的相关技术点，数据模型设计，界面布局注意事项，群组模型与用户模型关系。群组消息消费，消息分发，消息流管理的相关知识点。同时对一些希望学习的知识点进行畅想：Socket.IO/ Websocket。</p>
			
					  </div>
					</li>
				  				</ul>
			  			</div>
							<div class="chapter-update-state continue" style='padding-left: 72px;line-height: 58px;border-bottom: 1px solid #eceef0;color: #93999f;'>本课程持续更新中</div>
					</div>
	</div>
	﻿<div class="recommendcourse">
	<!-- 讲师 -->
	<div class="recom-box clearfix">
		<h3 class="box-tit">讲师</h3>
		<div class="box-bd">
						<div class="tea-inst">
				<div class="medias">
					<a href="http://www.imooc.com/t/1339513" data-href="http://www.imooc.com/space/teacher/id/1339513" target="_blank">
						<img src="picture/550aa27c00015c4f01000100-100-100.jpg" class="media" alt="">
						<span class="name">Qiujuer</span>
						<i class="ic sz-imooc"></i>
					</a>
					<span class="job">移动开发工程师</span>
				</div>
				<p class="desc">主攻 Android、Java、C#、Swift。曾组建创业团队，现就职于开源中国任职Android团队负责人。</p>
			</div>
					</div><!-- 讲师 end -->
		<!-- 课前必学 -->
		<div class="js-prelearn-evalution" data-id="100">

		</div>


	</div>
</div> 
</div>

</div>




        
<div id="footer">
<div class="waper">
    <div class="footerwaper clearfix">
        <div class="followus r">
            <a class="followus-weixin" href="javascript:;"  target="_blank" title="微信">
                <div class="flw-weixin-box"></div>
            </a>
            <a class="followus-weibo" href="http://weibo.com/u/3306361973"  target="_blank" title="新浪微博"></a>
            <a class="followus-qzone" href="http://user.qzone.qq.com/1059809142/" target="_blank" title="QQ空间"></a>
        </div>
        <div class="footer_intro l">
            <div class="footer_link">
                <ul>
                    <li><a href="http://www.imooc.com/" target="_blank">网站首页</a></li>
                    <li><a href="http://www.imooc.com/about/cooperate" target="_blank" title="企业合作">企业合作</a></li>
                    <li><a href="http://www.imooc.com/about/job" target="_blank">人才招聘</a></li>
                    <li> <a href="http://www.imooc.com/about/contact" target="_blank">联系我们</a></li>
                    <li> <a href="http://www.imooc.com/about/recruit" target="_blank">讲师招募</a></li>
                     <li> <a href="http://coding.imooc.com/user/faq" target="_blank">常见问题</a></li>
                    <li> <a href="http://www.imooc.com/user/feedback" target="_blank">意见反馈</a></li>
                    <li><a href="http://daxue.imooc.com/" target="_blank">慕课大学</a></li>
                    <li> <a href="http://www.imooc.com/about/friendly" target="_blank">友情链接</a></li>
                    <!-- <li><a href="http://www.imooc.com/about/us" target="_blank">关于我们</a></li> -->
                </ul>
            </div>
            <p>Copyright © 2017 imooc.com All Rights Reserved | 京ICP备 13046642号-2</p>
        </div>
    </div>
</div>
</div>


<div id="J_GotoTop" class="elevator">

    <a href="/user/feedback" class="elevator-msg"  target="_blank" >
        <i class="sz-feedback"></i>
        <span class="">意见反馈</span>
    </a>
    <a href="/user/faq" class="elevator-faq"  target="_blank" >
        <i class="sz-help_outline"></i>
        <span class="">常见问题</span>
    </a>
    <a href="http://www.imooc.com/mobile/app" target="_blank" class="elevator-app" >
        <i class="sz-appdownload"></i>
        <span class="">APP下载</span>
        <div class="elevator-app-box"></div>
    </a>
    <a href="javascript:void(0)" class="elevator-weixin no-goto" id="js-elevator-weixin" >
        <i class="sz-weixigzh"></i>
        <span class="">官方微信</span>
        <div class="elevator-weixin-box"></div>
    </a>
    <a href="javascript:void(0)" class="elevator-top no-goto" style="display:none" id="backTop">
        <i class="sz-arrow-up"></i>
        <span class="">返回顶部</span>
    </a>
</div>



<script src="js/ssologin.js"></script>
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript" src="js/moco.min.js"></script>




    <script>/*RESOURCE_MAP*/</script>
    <script src='js/jquery.fly.js'></script>
	 <!--[if gte IE 9]><script src='js/requestanimationframe.js'></script><![endif]-->
    <script data-entry="class/index">
		requirejs(['class/index'], function(){
    });
    (function(){
        var imgPic = 'http://szimg.mukewang.com/59118b92000147bf05400300-280-160.jpg' || 'http://img.mukewang.com/static/img/common/logo.png',
            text = '我正在参加@慕课网 的一门课程【' + '带后台的IM即时通讯App 全程MVP手把手打造' + '】，很不错哦！快来一起学习吧！', //节名称
            url = 'http://coding.imooc.com' + window.location.pathname;

        window._bd_share_config = {
            "common": {
                "bdUrl": url,
                "bdSnsKey": {
                  'tsina':'2788596354'
                },
                "bdText": text,
                "bdMini": "2",
                "bdMiniList": false,
                "bdPic": imgPic,
                "bdStyle": "0",
                "bdSize": "16"
            },
            "share": {}
        };
        with(document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];
      })();
    </script>

<script data-entry="class/chapter/index">requirejs(['class/chapter/index']);</script>


<div class="comp-modal-overlay"></div>
<div class="modal modal-buy" id="before-buy-modal">
    <div class="inner">
        <div class="header">
            <strong class="tit">购买课程</strong>
            <a href="javascript:;" class="help">帮助？</a>
        </div>
        <div class="content">
            <div class="infos">
                <span class="name">带后台的IM即时通讯App 全程MVP手把手打造</span>
                <span class="price">
																	<i>&yen;</i><b>466</b><i>.00</i>
								</span>
                <span class="deadline">
					
					                </span>
            </div>
        </div>
        <div class="footer">
            <a href="javascript:;" class="cancel-btn" rel="modal:close">取消</a>
            <a data-href="/pay/buynow/cid/100" href='javascript:;' class="go-pay-btn">去支付</a>
        </div>
    </div>
</div>

<div style="display: none">
<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "//hm.baidu.com/hm.js?c1c5f01e0fc4d75fd5cbb16f2e713d56";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';        
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>
</div>

</body>
</html>
